<%@ Language=VBScript %>
<%Option Explicit%>

<!--#include file="../cons.asp"-->
<!--#include file="../../Common/Database.asp"-->

<%
	response.CacheControl = "no-cache"
	
	Dim Profesor
	Dim oRSProfesores, oRSProfesoresCountAS, oRSPG
	
	Set oRSProfesores = GetProfesoresxNombreyApellido(request("txtProfesor"), false)
	Set oRSProfesoresCountAS = GetProfesoresxNombreyApellido(request("txtProfesor"), true)
	Set oRSPG = GetPG(oRSProfesores)
	%>
	<table cellpadding=0 cellspacing=0 width=100% height=100% style="table-layout:fixed; border-collapse: collapse; font-family: Verndana; font-size: 12px; font-weight: bold; color: white;">
		<tr valign="top">
			<td style="background-color: #666666; width: 250px; height: 15px;">Apellido y Nombre</td>
			<td style="background-color: #666666; width: 70px; text-align: center;">Sede</td>
			<td style="background-color: #666666; width: 290px; text-align: center;">Materia</td>
			<td style="background-color: #666666; width: 70px; text-align: center;">Curso</td>
			<td style="background-color: #666666; width: 100px; text-align: center;">Promedio</td>
			<td style="background-color: #666666; width: 100px; text-align: center;">Detalle</td>
			<td style="background-color: #666666; text-align: center;"></td>
		</tr>
		<tr valign="top">
			<td colspan=7>
				<div style="height: 300px; overflow-Y: scroll;">
		<table cellpadding=0 cellspacing=0 width=100% style="table-layout:fixed; border-collapse: collapse; font-family: Verndana; font-size: 12px;">
		<%
			Profesor = ""
			Dim aux
			while not oRSProfesores.EOF
				response.Write "<tr height=20 "
				if Profesor <> oRSProfesores("IdProfesor") then
					if aux= 1 then
						aux=0
					else
						aux=1
					end if
				end if
				
				if aux=0 then
					response.Write "bgcolor=""#a5a574"">"
				else
					response.Write ">"
					aux=1
				end if
				if Profesor <> oRSProfesores("IdProfesor") then
					response.Write "<td valign=""middle"" rowspan=" & oRSProfesoresCountAS(0) & " width=250 height=25>" & server.HTMLEncode(oRSProfesores("Apellido")) & ", " & server.HTMLEncode(oRSProfesores("Nombre")) & "</td>"
					Profesor = oRSProfesores("IdProfesor")
					oRSProfesoresCountAS.MoveNext()
				end if
				response.Write "<td width=70 style=""text-align: center;"">AMENABAR</td>"
				response.Write "<td width=290 style=""text-align: center;"">" & server.HTMLEncode(oRSProfesores("MateriaBoletin")) & "</td>"
				response.Write "<td width=70 style=""text-align: center;"">" & server.HTMLEncode(oRSProfesores("CursoDescrip")) & "</td>"
				response.Write "<td width=100 style=""text-align: center;"">" & GetPromedio(oRSProfesores("IdMateria")) & "</td>"
				response.Write "<td width=100 style=""text-align: center;""><a url=""BI_Curso.asp?redirect=" & oRSProfesores("IdCurso") & "," & oRSProfesores("IdMateria") & """ onclick=""parent.AbrirVista(this);"" style=""cursor: hand;"">Detalle</a></td>"
				response.Write "<td></td>"
				response.Write "</tr>"
				
				oRSProfesores.MoveNext()
			wend
		%>
		</table>
		</div>
		</td>
		</tr>
		
	</table>
<%
Public function GetProfesoresxNombreyApellido(str, countas)

	Dim oConn, sSQL, oRS, astr, i, aux
	
	aux = 0
	if len(str) <= 0 then
		str = "zzzz"
	end if
	astr = split(str, " ")
	
	Set oConn = OpenConnection
	
	if countas then
		sSQL = "select count(*) "
	else
		sSQL = "select P.IdProfesor, P.Apellido, P.Nombre, MC.IdMateriaCurso, M.IdMateria, M.MateriaBoletin, C.IdCurso, C.CursoDescrip "
	end if
	
	sSQL = sSQL &	"from Profesor P " & _
					"inner join ProfesorMaterias PM on (P.IdProfesor = PM.IdProfesor) " & _
					"inner join Materia M on (PM.IdMateria = M.IdMateria) " & _
					"inner join MateriasCurso MC on (MC.IdProfesorMateria = PM.IdProfesorMateria) " & _
					"inner join Curso C on (C.IdCurso = MC.IdCurso) "
			
			for i=0 to ubound(astr)
				if astr(i) <> "" then
					if aux=0 then
						sSQL = sSQL & "where (P.Apellido like '%" & astr(i) & "%' or P.Nombre like '%" & astr(i) & "%')"
						aux=1
					else
						sSQL = sSQL & " and (P.Apellido like '%" & astr(i) & "%' or P.Nombre like '%" & astr(i) & "%')"
					end if
				end if
			Next
	if countas then
			sSQL = sSQL & " group by P.IdProfesor, P.Apellido, P.Nombre"
    end if
	
	sSQL = sSQL & " order by P.Apellido, P.Nombre"

    if countas then
	    'response.Write sSQL
	    'response.End
	end if
	Set oRS = oConn.Execute(sSQL)
	Set GetProfesoresxNombreyApellido = oRS
End function

Private function GetPG(oRSProfesores)

	Dim oConn, sSQL, oRS
	Dim sIdMateriaCurso
	
	Set oConn = OpenConnection
	
	while not oRSProfesores.EOF
		sIdMateriaCurso = sIdMateriaCurso & oRSProfesores("IdMateria") & ","
		oRSProfesores.MoveNext()
	wend
	oRSProfesores.MoveFirst()
	sIdMateriaCurso = mid(sIdMateriaCurso,1,len(sIdMateriaCurso)-1)
	
'	sSQL =	"select AC.IdMateriaCurso, avg(Nota) as prom " & _
'			"from Notas N " & _
'			"inner join AlumnosCurso AC on (AC.IdAlumnoCurso = N.IdAlumnoCurso and AC.IdMateriaCurso in (" & sIdMateriaCurso & ")) " & _
'			"inner join Alumnos A on (A.IdAlumno = AC.IdAlumno) " & _
'			"where N.nota <> 0 " & _
'			"group by AC.IdMateriaCurso"

    sSQL =  "select N.IdMateria, avg(NM.Nota) as prom " & _
            "from NotasModalidad NM " & _
            "inner join Notas N on (N.IdNota = NM.IdNota) " & _
            "where N.IdMateria in (" & sIdMateriaCurso & ") " & _
            "group by N.IdMateria"
	
	'response.Write sSQL
	'response.End
	
	Set oRS = oConn.Execute(sSQL)
	Set GetPG = oRS
End function

Private Function GetPromedio(IdMateriaCurso)

	Dim aux
	if not oRSPG.EOF then
	    oRSPG.MoveFirst()
	end if
	'response.write "-" & idmateriacurso
	'response.end
	while not oRSPG.EOF and aux=0
	
		if IdMateriaCurso = oRSPG("IdMateria") then
			aux=1
		end if
		
		if aux <> 1 then
			oRSPG.MoveNext()
		end if
	wend
	
	if not oRSPG.EOF then
	    GetPromedio = GetNotaDecCol(oRSPG("prom"), 2)
	end if
End function

Public function GetNotaDecCol(nota, idec)
	Dim sNota, iNotaConvert
	'response.write nota
	'response.end
	iNotaConvert = FormatNumber(nota, idec)
	
	sNota = "<font color="""
	if iNotaConvert >= 0 and iNotaConvert < 4 then
		sNota = sNota & "red"
	end if
	
	if iNotaConvert >= 4 and iNotaConvert < 6 then
		sNota = sNota & "green"
	end if
	
	if iNotaConvert >= 6 and iNotaConvert <= 10 then
		sNota = sNota & "blue"
	end if
	
	sNota = sNota & """>" & iNotaConvert & "</font>"
	GetNotaDecCol = sNota
End function

%>